# -*-coding:utf-8 -*-
from django.db import models

# Create your models here.
# 表 项目
# 字段    项目名称    类型：字符串
class Project(models.Model):
    project_name = models.CharField(max_length=50, verbose_name='项目名称')

    def __str__(self):
        return self.project_name

    class Meta:
        verbose_name = '项目'
        verbose_name_plural = verbose_name

# # 表 部署类型
# class DeployType(models.Model):
#     type_name = models.CharField(max_length=20, verbose_name='部署类型名称')
#
#     class Meta:
#         verbose_name = '部署类型'
#         verbose_name_plural = verbose_name

# 表 接口类型
class DeployInterfaceType(models.Model):
    type_name = models.CharField(max_length=30, verbose_name='接口类型名称')
    process_cmd = models.CharField(max_length=200, verbose_name='接口执行命令')

    def __str__(self):
        return self.type_name

    class Meta:
        verbose_name = '接口类型'
        verbose_name_plural = verbose_name

# 数据库设计
# 表 部署配置
# 字段 部署类型  类型：（服务器，客户端）--枚举
# 字段 项目     类型： 项目 外键
# 字段 接口类型  类型： （python，web等）--枚举
# 字段 配置名称  类型： 字符串
# 字段 接口参数  类型： 字符串
class DeployProfile(models.Model):
    deploy_type_choice = (
        ('Server','服务器'),
        ('Client','客户端')
    )
    deploy_type = models.CharField(max_length=20, choices=deploy_type_choice, verbose_name='部署类型')

    profile_name = models.CharField(max_length=200, verbose_name='此配置名称')
    project = models.ForeignKey(Project, verbose_name='隶属项目')

    interface_type = models.ForeignKey(DeployInterfaceType, verbose_name='接口类型')
    interface_params = models.CharField(max_length=400, verbose_name='接口参数')

    def __str__(self):
        return self.profile_name

    class Meta:
        verbose_name = '部署配置'
        verbose_name_plural = verbose_name
        permissions = (
            ('view_profiles','查看配置项目'),
            ('process_deployment', '使用配置'),
        )